/*
  GRANITE DATA SERVICES
  Copyright (C) 2011 GRANITE DATA SERVICES S.A.S.

  This file is part of Granite Data Services.

  Granite Data Services is free software; you can redistribute it and/or modify
  it under the terms of the GNU Lesser General Public License as published by
  the Free Software Foundation; either version 3 of the License, or (at your
  option) any later version.

  Granite Data Services is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
  for more details.

  You should have received a copy of the GNU Lesser General Public License
  along with this library; if not, see <http://www.gnu.org/licenses/>.
*/

package p20120406.jpa.dyn3.services;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import p20120406.jpa.dyn3.entities.Welcome;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;


@Service ("welcomeService")
public class WelcomeServiceImpl implements WelcomeService
{

   @PersistenceContext
   private EntityManager entityManager;


   @Transactional
   public Welcome hello(String name)
   {
      if (name == null || name.trim().length() == 0)
         throw new RuntimeException("Name cannot be null or empty");

      Welcome welcome = null;
      welcome = new Welcome();
      welcome.setName(name);
      welcome.setMessage("Welcome " + name);
      entityManager.persist(welcome);
      return welcome;
   }
}
